/**
 * 
 */
package com.gwcloud.leetcode.interview100;

/**
 * @ClassName   : Leetcode0130 
 * @author      : ganwei 
 * @date        : 2020年5月26日
 * @Description : Leetcode0130 被围绕的区域
 */
public class Leetcode0130 {
    int[] dx={1,-1,0,0};
    int[] dy={0,0,1,-1};
	/**
	 * -解题思路,深度优先遍历，有点意思
	 */
    public void solve(char[][] board) {
    	for(int i = 0; i < board.length; i++){
    		for(int j = 0; j < board[0].length; j++){
    			if((i==0 || j==0 || i==board.length-1 || j==board[0].length-1)&&board[i][j]=='O'){
    				helper(board, i, j);
    			}
    		}
    	}
        //把K改成O，其他改成X
        for(int i=0;i<board.length;i++){
            for(int j=0;j<board[0].length;j++){
                board[i][j]=board[i][j]=='K'?'O':'X';
            }
        }

    }
    void helper(char[][] board,int i,int j){
        board[i][j]='K';
        for(int k=0;k<4;k++){
            int x=i+dx[k];
            int y=j+dy[k];
            if(x>=0&&y>=0&&x<board.length&&y<board[0].length&&board[x][y]=='O'){
                helper(board,x,y);
            }
        }
    }

    /**
     * -主函数
     */
    public static void main(String[] args){
    	
    }
}
